package com.yuedou.api.entity.product;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 购物车对象 product_cart
 *
 * @author ruoyi
 * @date 2021-08-11
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("product_cart")
public class ProductCart implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     * 购物车表ID
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    /**
     * 用户ID
     */
    private Integer userId;

    /**
     * 商家id
     */
    private Integer merId;

    /**
     *  餐桌id
     */
    private Integer tableId;

    /**
     * 类型
     */
    private String type;

    /**
     * 商品ID
     */
    private Integer productId;

    /**
     * 商品属性id
     */
    private Integer productAttValueId;

    /**
     * 商品属性
     */
    private String productAttrUnique;

    /**
     * 商品数量
     */
    private Integer cartNum;

    /**
     *  单价
     */
    private BigDecimal singlePrice;
    /**
     *  商品名称
     */
    private String productName;

    /**
     * 添加时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 0 = 未购买 1 = 已购买
     */
    private Integer isPay;

    /**
     * 是否删除
     */
    private Integer isDel;

    /**
     * 是否为立即购买
     */
    private Integer isNew;

    /**
     * 是否为已选中状态
     */
    private Integer checkState;

    /**
     * 拼团id
     */
    private Integer combinationId;

    /**
     *  菜系品类 0 - 凉菜 1 - 热菜  2 - 烧烤 3 - 酒水  4 - 其他
     */
    private Integer dishType;

    /**
     *  服务器加菜的订单id
     */
    private Integer orderId;

    @TableField(exist = false)
    private ProductAttrValue attrValue;

    @TableField(exist = false)
    private Product product;

    @TableField(exist = false)
    private double totalPrice;

    @TableField(exist = false)
    private double totalPriceFen;
}
